// components/lee-popup/lee-popup.js
Component({
  options: {
    /**
     * isolated 表示启用样式隔离，在自定义组件内外，使用 class 指定的样式将不会相互影响（一般情况下的默认值）；
      apply-shared 表示页面 wxss 样式将影响到自定义组件，但自定义组件 wxss 中指定的样式不会影响页面；
      shared 表示页面 wxss 样式将影响到自定义组件，自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件
     */
    styleIsolation: "apply-shared", // 组件样式对外隔离
    multipleSlots: true // 在组件定义时的选项中启用多slot支持
  },
  /**
   * 组件的属性列表
   */
  properties: {
    show: {
      type: Boolean,
      value: false
    },
    mask: {
      type: Boolean,
      value: true
    }
  },
  /**
   * 组件的初始数据
   */
  data: {
    showA: false
  },
  lifetimes:{
    attached: function() {
      // 在组件实例进入页面节点树时执行
      if(this.properties.show){
        this.open()
      }
    },
    detached: function() {
      // 在组件实例被从页面节点树移除时执行
    },
  },
  /**
   * 组件的方法列表
   */
  methods: {
    open() {
      // 父组件调用方法
      // 为组件设置ID来供查找使用  <leePopup id="leePopup"><leePopup>
      // 使用内置方法查找并调用子组件打开方法 this.selectComponent("#leePopup").open()
      console.log("打开弹出框")
      this.setData({
        show: true
      })
      setTimeout(() => {
        this.setData({
          showA: true
        })
      }, 100)
    },
    close() {
      // 父组件调用方法
      // 为组件设置ID来供查找使用  <leePopup id="leePopup"><leePopup>
      // 使用内置方法查找并调用子组件打开方法 this.selectComponent("#leePopup").open()
      console.log("关闭弹出框")
      this.setData({
        showA: false
      })
      setTimeout(() => {
        this.setData({
          show: false
        })
      }, 300)
    },
    maskClose(){
      // 关闭校验
      if (!this.properties.mask) {
        // 蒙层禁止点击
        return
      }
      this.close()
    }
  }
})